Component({
  properties: {
    // 组件的使用模式1：已下单 2：未下单
    mode: {
        type: Number,
        value: 2,
    },
    // 已下单场景（mode = 1）下，细分订单状态0：继续支付1：申请退款2：退款中3：退款成功4：退款失败
    orderstatus: {
        type: Number,
        value: 0,
    },
    // 开发者订单系统的退款单号，用于查看退款详情
    refundid: {
        type: String,
        value: "",
    },
    // 开发者订单系统的交易订单号，用于继续支付、申请退款
    orderdingdan: {
        type: String,
        value: "",
    },
    // 商品id,mode 为 2 时，该属性必传
    goodsId: {
      type: String,
      value: "",
    },
    extension: {
      type: String,
      value: "",
    },
    source: {
      type: String,
      value: "",
    },
    // 组件class名
    classname: {
      type: String,
      value: "",
    },
    hbprice: {
      type: String,
      value: "",
    },
    kcid: {
      type: String,
      value: "",
    },
  },
  data: {
      extension: '', // 达人id
      source: '', // 购买来源
      hbprice: '', // 价格
      kcid: '', // 课程id
      orderdingdan: '',
      goodsId: '',
  },
methods: {
    // 获取商品信息
    getGoodsInfo(goodsId, extension, source) {
        return new Promise(resolve => {
            // 在此处开发者可以进行商品数据请求，获取商品信息
            // 然后将商品信息传入 resolve 函数
            resolve({
                minLimits: 1,
                maxLimits: 1,
                dateRule: '周一至周日可用',
                validation: {
                    phoneNumber: {
                        required: false  // 手机号是否必填
                    }
                },
                // 开发者透传参数,上传服务端时会对extra进行JSON.stringify处理
                extra: {
                    extension: this.data.extension,
                    source: this.data.source,
                }
            });
        })
    },
    // 组件传入属性异常、组件内部发生异常时触发
    onError(e) {
      const { errNo, errMsg } = e.detail;
      if (errNo === 21514) {
        tt.showToast({
          title: "课程未上架", // 内容
          icon: "none", // 图标
        });
      } else if (errNo === 21513) {
        tt.showToast({
          title: "获取中", // 内容
          icon: "none", // 图标
        });
      } else if (errNo === 21529) {
        tt.showToast({
          title: "申请退款获取订单信息失败，服务端参数校验不通过", // 内容
          icon: "none", // 图标
        });
      }
    },
    onSuccess(e){
    },
    // 支付回调
    onPay(options) {
        const { status, orderId, outOrderNo, result } = options.detail;
        if (status === 'success') {
            const { code } = result;
            if (code === 0) {
                // 支付成功
                tt.switchTab({
                    url: 'usr://pages/kecheng/kecheng'
                })
            } else {
                // 支付失败（超时、取消、关闭）
                tt.navigateTo({
                    url:'usr://pages/orderfail/orderfail?coupon_price=' + this.data.hbprice + '&course_id=' + this.data.kcid + '&id=' + options.detail.outOrderNo
                })
                tt.showToast({
                  title: "支付失败", // 内容
                  icon: "none", // 图标
                });
            }
        } else {
            const { errMsg } = result;
        }
      // tt.navigateBack();
    },
    // 由于在前端模板中进行下单需要用户登录，所以建议在此处完成登录或提醒用户打开设置给予相应权限
    userLogin(event) {
        return new Promise((resolve) => {
            tt.login({
                success() {
                    // 用户登录成功并获取信息，则调用 resolve 函数，跳转至下单页
                    resolve();
                },
                fail() {
                    // 用户登录失败，则跳转下单页失败
                    reject();
                }
            });
        });
    },
    // 退款回调
    handleRefund(event) {
        const { status, result } = event.detail;
        if (status === 'success') {
            const { refundId, outRefundNo } = result;
        } else {
            const { errMsg } = result;
        }
    }
},
});